package pers.dawnyang.modular.system.service;

import java.util.List;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import pers.dawnyang.common.core.domain.entity.SysRole;
import pers.dawnyang.modular.system.domain.request.role.RoleMenuReqU;
import pers.dawnyang.modular.system.domain.request.role.RoleReqR;
import pers.dawnyang.modular.system.domain.request.role.SavePermsReq;
import pers.dawnyang.modular.system.domain.response.role.Perms;
import pers.dawnyang.modular.system.domain.response.role.RoleMenuRes;
import pers.dawnyang.modular.system.domain.response.role.RoleRes;

public interface RoleService extends IService<SysRole> {

    IPage<RoleRes> getPage(Page<RoleRes> page, RoleReqR req);

    List<Perms> getPermsList(Long roleId);

    void savePerms(SavePermsReq req);

    List<RoleMenuRes> getRoleMenu(Long roleId);

    void saveRoleMenu(RoleMenuReqU req);

    /**
     * 角色越级操作检查
     * 
     * @param roleId
     * @return
     */
    boolean checkRoleLevel(Long roleId);

}
